#ifndef _KC_YYSTYPE__H_KC_
#define _KC_YYSTYPE__H_KC_

#include "Token.h"
#include "TokenCollection.h"
#include "../mime/data/Entity.h"
#include "../mime/data/Address.h"

namespace kc_sf
{
	/* struktura do rozróżniania typów tokenów w parserze (korzysta z niej także lekser) */
	typedef struct
	{
		TokenCollection::iterator yTokenIterator;	// iterator do elementu z listy TokenCollection
		TokenCollection yTokenCollection;			// kolekcja tokenów
        Entity *yEntityPtr;   						// wskaźnik na encję
		Address yAddress;    						// pojedynczy adres (localpart@domain)
		AddressCollection yAddressCollection;		// grupa adresow
	} yystype_struct;
}

#ifdef YYSTYPE
#	undef YYSTYPE
#endif // YYSTYPE

#define YYSTYPE kc_sf::yystype_struct

#endif // _KC_YYSTYPE__H_KC_
